home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
amok_lha
/
amok33.lha
/
Ersatzquelle
/
Ersatzquelle.DOK
< prev
next >
Wrap
Text File
|
1993-08-15
|
35KB
|
768 lines
04.11.1989
====================================================
|| Bedienungsanleitung zum Programm 'Ersatzquelle'||
====================================================
Version: 1.0a (siehe Punkt 7 !)
Datum: 24.10.89 (Programm)
Autor: Gary Struhlik
Sprache: (natürlich) MODULA-2
Compiler: M2Amiga V3.3d (28.11.89)
Copyright: Die Version 1.0 des Programms ist Public Domain, d.h.
jeder darf es kopieren ohne dabei Gewinn zu machen.
Es darf nur komplett weitergegeben werden, d.h. der
Quellecode, diese Dokumentation und das kompilierte
Programm. Des weiteren darf das Programm auch in
anderen PD-Serien für den AMIGA erscheinen, da es
eventuell als Anwendungsprogramm dienen soll ohne
daß es dabei darum geht, Modula-2 Programme zu ver-
öffentlichen. Auch Umsetzungen z.B. in 'C' dürfen ge-
macht werden. Eine kommerzielle Nutzung, d.h. die
Software als Teil oder vollständig gewinnbrigend zu
verkaufen ist nicht zulässig !
1. Einleitung
=============
1.1 Zielgruppe:
---------------
Das Programm ist in erster Linie für Elektrotechniker gedacht.
Besonders für Studentinnen und Studenten der Fachrichtungen
Elektrotechnik, Nachrichtentechnik oder ähnliche Fachrichtungen.
1.2 Aufgabe:
------------
Man kann einfache passive analoge Schaltungen, also Netzwerke
bestehend aus ohmschen Widerständen, Spulen, Kondensatoren sowie
starren Strom- und Spannungsquellen berechnen.
Das Prinzip (siehe Kapitel 2) basiert auf der Betrachtung einer
Schaltung als Ersatzstrom- bzw. Ersatzspannungsquelle. Man kann
einfache Schaltungen berechnen, die nicht zu stark vernetzt
sein dürfen, da sonst dieses Prinzip nicht mehr anwendbar ist
(siehe Literatur der Elektrotechnik).
Es können Spannungen, Ströme und Widerstandswerte berechnet wer-
den. Die Spannungs- und Stromquellen einer Schaltung können
Gleichgrößen haben oder sinusförmige.Die sinusförmigen haben die
größte Bedeutung. Hier wird die komplexe Rechnung eingesetzt.
Man kann mit diesem Programm die berechneten Werte nicht nur
numerisch ausgeben, sondern auch als Grafiken. Es können Orts-
kurven, Frequenz- und Phasengänge linear und logarithmisch gra-
fisch auf dem Bildschirm dargestellt werden. Ausdrucke sind
ebenfalls möglich.
1.3 Anmerkung:
--------------
Bisher habe ich in dem unendlichen Public Domain Angebot für
den AMIGA noch kein Programm entdeckt, das in irgend einer Weise
sich mit Elektrotechnik beschäftigt. Es kann natürlich sein, das
dies der Fall ist, da man nie alle Public Domain Serien über-
blicken kann. Ich meine übrigens PD keine Demoversionen von
Programmen, die sich mit der Thematik befassen.
Das verwendete Rechenverfahren ist übrigens uralt,man hat dieses
auch früher schon auf Rechnern programmiert, da es den Vorteil
hat schnell zu sein, d.h. es müssen keine komplexen Gleichungs-
systeme aufgestellt werden (z.B. Maschenstromverfahren).
2. Allgemeines Prinzip
======================
Ein Zweipol kann für eine feste Frequenz als Ersatzspannungs-
bzw. Ersatzstromquelle betrachtet werden:
Ersatzspannungsquelle: ZI
---------------------- ___
---| |-----o
| ---
U0 | |
| ( )
\|/ |
|
-------------o
Ersatzstromquelle: /\
------------------ ||
\/
-------------o
IK /|\ |
| -
( ) | |
| | | YI
| -
| |
-------------o
ZI: Innenwiderstand der Quelle
YI: Innenleitwert der Quelle
U0: Leerlaufspannung der Quelle
IK: Kurzschlußstrom der Quelle
Beide Ersatzquellen sind äquivalent zueinander und können in
die jeweils andere umgerechnet werden:
Spannungsquelle -> Stromquelle
------------------------------
YI = 1/ZI
IK = U0 * YI
Stromquelle -> Spannungsquelle
------------------------------
ZI = 1/YI
U0 = IK * ZI
Wenn man eine Schaltung so betrachtet, dann ist es sehr einfach
mehrere Quellen zusammen zu setzen, d.h. sie parallel bzw. in
Reihe zu schalten. Bei der Parallelschaltung werden einfach die
Ströme und die Leitwerte addiert und bei der Reihenschaltung die
Widerstände und die Spannungen.
Daraus erkennt man, daß man für jeden Zweipol einen Speicher-
platz benötigt, der sich aus dem Widerstandswert und dem
Spannungswert (Ersatzspannungsquelle) bzw. aus dem Leitwert und
dem Stromwert (Ersatzstromquelle) zusammensetzt, wobei sich
jeder Wert aus einem Realteil und einem Imaginärteil zu-
sammensetzt (komplexe Rechnung).
3. Programmbeschreibung und Bedienung
=====================================
Ergänzend zum Kapitel 2 soll hier erwähnt werden, daß
1) das Programm insgesamt 3 Speicher für Zweipole zur Verfügung
stellt. Die mit A,B und C bezeichnet werden. Für diese Spei-
cher gibt es, wie man es aus den Gadgets des Befehlfensters
erkennen kann, einfache Grundbefehle.
2) die Schaltung im Quellenspeicher A aufgebaut bzw. berechnet
wird, d.h. dieser Speicher ist der Arbeitsspeicher. Die
anderen dienen dazu, den aufgebauten Zweipol zu sichern um
ihn später ggf. mit dem Arbeitsspeicher in Reihe oder
parallel zu schalten.
3) das Programm den Speicherinhalt stets als Ersatzspannungs-
quelle betrachtet. Nur bei bestimmten Operationen, die dies
erfordern, wird eine Ersatzquelle in eine Stromquelle umge-
rechnet. Am Ende wird das Ergebnis als Spannungsquelle ge-
speichert.
Bei der Umrechnung von einer Spannungs- in eine
Stromquelle und umgekehrt wird die gleiche Speicheradresse
benutzt, aber der Name ändert sich (Variante RECORDs, siehe
Quellcode), da der Speicher entweder als Strom- oder
Spannungsquelle betrachtet wird.
4) die Eingabe der Bauelemente ( bei Strom- und Spannungs-
werten) in Normalform oder in Polarform eingegeben
werden kann. Die Speicherung erfolgt aber stets in Normal-
form !
3.1 Arbeitsweise des Programms
------------------------------
Bevor man überhaupt eine Berechnung durchführen kann, muß die
gesamte Schaltung erst einmal eingegeben werden und in einem
Feld gespeichert werden. Die Anweisungen werden in einer Schlei-
fe abgefragt. Diese werden in dem Feld 'Makro' gespeichert. Es
gibt Anweisungen, die zusätzlich noch Werte benötigen z.B. ein
Widerstand. Diese Werte werden in einem Extrafeld 'Wert' ein-
gespeichert. Ein Widerstand besteht also aus der Anweisung 'RR'
(in 'Makro' gespeichert) und dem dazugehörigen Wert (in 'Wert'
gespeichert). Manche Anweisungen benötigen keinen Wert z.B. die
Anweisung 'A->C' (Speicher A in C sichern). Darum braucht man
sich keine Gedanken machen, welche Anweisung einen Wert hat oder
nicht, da dies ggf. automatisch abgefragt wird. Das Ende der
Bauteilliste wird mit dem Befehl 'EE' gekennzeichnet. Auf keinen
Fall darf man diese Anweisung vergessen (siehe auch Kapitel 4
über 'Bugs').
Es soll jetzt erläutert werden, wie man eine Schaltung eingibt,
und berechnet.
Die Schaltung wird während der Laufzeit interaktiv eingegeben.
Man befindet sich nach dem Start des Programms in einem Editier-
modus. Man gibt die Schaltung Bauteil für Bauteil ein (siehe
genaue Beschreibung der Befehle in Kapitel 3.2). Es sind auch
Korrekturen möglich bzw. Ergänzungen.
Es folgt Beispiel Nr. 1:
------------------------
Es soll für eine Schaltung die Ortskurve des Gesamtwiderstands
aufgezeichnet werden.
Aufgabe: Es soll die Ortskurve (Variable die Frequenz w=Omega)
in der komplexen Zahlenebene Re{Z} = 0...20
jIm{Z} = -10... 6
von w= 1...100000 1/s mit der Schrittweite 80 1/s auf-
gezeichnet werden.
R1=10 Ohm L=20mH
____ ____
---| |-----|####|--- Die Schaltung kann
| ---- ---- | man hoffentlich erkennen ?!
| | | |
o--*---------| |-----------*--o
| | | C=5 uF |
| ____ |
-------| |----------
----
R2=20 Ohm
--------------------------> Zges (als komplexen Zeiger=f(w))
Hinweis:
--------
Kurz nach dem Start des Programms sollte man die
CAPS-LOCK-Taste einrasten lassen,da einige Werte in Exponential-
schreibweise eingegeben werden (z.B. LR, CR usw.) !!
----------------------------------------------------------------
|Benutzereingabe | Anzeige |
-------------------------+--------------------------------------
RR (anklicken) | RR/Ohm =
10 <CR> | RR/Ohm = 10.000000 <----
| (Eingabe wird bestätigt) _|
LR (anklicken) | LR/H =
20E-3 <CR> | LR/H = 2.000000E-02
CP (anklicken) | CP/H =
5E-6 <CR> | CP/H = 5.000000E-06
RP (anklicken) | RP/Ohm =
20 <CR> | RP/Ohm = 20.000000
ZI (anklicken) | ZI
EE ( " ) | EE
----------------------------------------------------------------
| jetzt kann die Berechnung erfolgen : |
----------------------------------------------------------------
Das Ortskurvensymbol an- |
klicken (Elektro- |
techniker erkennen es) | Es wird ein Text angezeigt ...
|
| w1 =
1 <CR> | w2 =
100000 <CR> | s =
80 <CR> | Re{Z}min =
0 <CR> | Re{Z}max =
20 <CR> | Im{Z}min =
-10 <CR> | Im{Z}max =
6 <CR> | ein paar Sekunden warten ...
| ... und die Ortskurve erscheint auf
| dem Bildschirm
| Programm wartet ...
Schließgadget (anklicken)|
(unsichtbar) dann 'NUM' |
oder 'PEND' für Programm-|
ende. |
|
----------------------------------------------------------------
<CR> ist natürlich die Return- bzw. Entertaste.
Man sollte am besten sich selber Schaltungen ausdenken bzw.
früher berechnete in den entsprechenden Eingabealgorithmus um-
setzen und die Ergebnisse vergleichen.
Die Eingabe ist eigentlich sehr einfach, wenn man sich daran
gewöhnt hat. Man muß natürlich darauf achten, daß man die Zähl-
pfeile richtig handhabt. In dem o.g. Beispiel wird nur ein
Widerstandswert berechnet, d.h. eine Strom- bzw. Spannungsquelle
ist in diesem Beispiel nicht vorhanden. Selbstverständlich kann
man Schaltungen mit Strom- und Spannungsquellen berechnen. Des-
halb noch ein kleines Beispiel:
Beispiel Nr. 2:
---------------
Aufgabe: Das Bodediagramm eines einfachen RC-Tiefpasses soll
aufgezeichnet werden:
w = 10^1 ... 10^7 1/s , wird als lg(w)=1...7 darge-
stellt
s = 10^0.01 1/s (Schrittweite)
|F| = -100...0 dB
Phi = -90...0 Grad
R=100 Ohm
____
-o------| |----------o--
| ---- | |
U1= 1V | | C=10uF----- |
| ( ) ----- \|/ U2
\|/ | |
-o----------------------o--
----------------------------------------------------------------
|Benutzereingabe | Anzeige |
-------------------------+--------------------------------------
U(RE,||) (anklicken) | |U|/V =
1 <CR> | |U|/V = 1.000000
U(IM,<) (anklicken) | <U/Grad =
0 <CR> | <U/Grad = 0.000000 *) siehe unten !
RR (anklicken) | RR/Ohm =
100 <CR> | RR/Ohm = 100.000000
CP (anklicken) | CP/H =
10E-6 | CP/H = 1.000000E-05
U0 (anklicken) | U0
EE ( " ) | EE
----------------------------------------------------------------
| jetzt kann die Berechnung erfolgen : |
----------------------------------------------------------------
Das Bodediagrammsymbol |
anklicken (Elektro- |
techniker erkennen es) | Es wird ein Text angezeigt ...
|
| w1 =
1 <CR> | w2 =
7 <CR> | s =
0.01 <CR> | |F|/dB min =
-100 <CR> | |F|/dB max =
0 <CR> | Phi min =
-90 <CR> | Phi max =
0 <CR> | ein paar Sekunden warten ...
| ... und das Bodediagramm erscheint
| auf dem Bildschirm (Betrag)
Schließgadget (anklicken)|
(unsichtbar) | ein paar Sekunden warten ...
| ... und der der Phasenverlauf er-
| scheint
Schließgadget (anklicken)| Programm wartet ...
----------------------------------------------------------------
*) Die Spannung kann entweder in Normal- oder Polarform ein-
gegeben werden. Das hängt davon ab, ob das REC oder POL Gad-
get im Befehlsfenster erscheint. Einfach nach Wunsch anklick-
en. Sehr wichtig: Immer beide Komponenten eingeben, also
Real- und Imaginärteil bzw. Betrag und Winkel (siehe Kapitel
--- ---
3.2, der Befehl U und I).
Jetzt könnte man unendlich viele Beispiele bringen, aber daß
wäre nicht sehr sinnvoll. Ich hoffe, daß diese Beispiele aus-
reichen, damit man später eigene Schaltungen eingeben kann ?!
3.2 Kurzbeschreibung aller Befehle
----------------------------------
Die Beschreibung erfolgt anhand der Gadgets im Befehlsfenster
spaltenweise von oben nach unten und von links nach rechts.
Fast alle Befehle beeinflussen den Arbeitsspeicher der Quelle A,
d.h. die Ersatzquelle wird Schritt für Schritt aufgebaut.
RR : Es kann ein ohmscher Reihenwiderstandswert eingegeben wer-
den
RP : Es kann ein ohmscher Parallelwiderstandswert eingegeben
werden
XR : Blindwiderstand in Reihe. Die Schaltungen können auch als
Widerstandswerte (Z=R+jX) eingegeben werden.
XP : Blindwiderstand parallel
LR : Spule in Reihe
LP : Spule parallel
CR : Kondensator in Reihe
CP : Kondensator parallel
Re{U} bzw. |U| : Der Wert einer Spannungsquelle. Entweder den
Realteil eingeben oder den Betrag der
Spannungsquelle. Das hängt davon ab, wie das
unten erwähnte REC/POL-Gadget eingestellt ist !
Im{U} bzw. <U : Der Wert einer Spannungsquelle. Entweder den
Imaginärteil eingeben oder den Winkel der
Spannungsquelle. Das hängt davon ab, wie das
unten erwähnte REC/POL-Gadget eingestellt ist !
Der Winkel wird stets in Grad eingegeben, da
das Bogenmaß in der Elektrotechnik normaler-
weise nicht verwendet wird !
Re{I} bzw. |I| : Der Wert einer Stromquelle. Entweder den
Realteil eingeben oder den Betrag der
Stromquelle. Das hängt davon ab, wie das
unten erwähnte REC/POL-Gadget eingestellt ist !
Im{I} bzw. <I : Der Wert einer Stromquelle. Entweder den
Imaginärteil eingeben oder den Winkel der
Stromquelle. Das hängt davon ab, wie das
unten erwähnte REC/POL-Gadget eingestellt ist !
Der Winkel wird stets in Grad eingegeben, da
das Bogenmaß in der Elektrotechnik normaler-
weise nicht verwendet wird !
- ____ ____ -
RS | -| |--| |-- | : Die beiden Quellenspeicher A und B in
| ---- ---- | Reihe schalten. Das Ergebnis steht
| A B | dann als Ersatzspannungsquelle in
- - Speicher A.
- ____ A -
PS | -| |- | : Die beiden Quellenspeicher A und B
| | ---- | | parallel schalten. Das Ergebnis steht
| -* *- | dann als Ersatzspannungsquelle in
| | ____ | B | Speicher A.
| -| |- |
- ---- -
U0 : Das Programm gibt die Leerlaufspannung des augenblicklichen
Arbeitsspeicherinhalts A aus.
IK : Das Programm gibt den Kurzschlußstrom des augenblicklichen
Arbeitsspeicherinhalts A aus.
ZI : Das Programm gibt den Innenwiderstand des augenblicklichen
Arbeitsspeicherinhalts A aus.
A->B: Der Arbeitsspeicher A wird in den Speicher B gespeichert
und der Arbeitsspeicher wird anschließend gelöscht. Der
Speicher B dient hier als Zwischenspeicher. Dieser ge-
speicherte Wert könnte später z.B. für die Operationen
Parallel- oder in Reihe schalten dienen.
A->C: Der Arbeitsspeicher A wird in den Speicher C gespeichert
und der Arbeitsspeicher wird anschließend gelöscht. Der
Speicher C dient hier ebenfalls als Zwischenspeicher.
Hier kann ein zusätzlicher Zweipol zwischengespeichert
werden. Dies ist manchmal erforderlich, wenn das Netzwerk
entsprechend umfangreich ist.
B<=>C: Die Speicherinhalte von B und C werden vertauscht. Dieser
Befehl findet nach Anwendung des Befehls 'A->C' seine An-
wendung. Damit der Speicherinhalt von C für eine Reihen-
bzw. Parallelschaltung zur Verfügung steht, da es keinen
Befehl gibt, der den C Speicher sonst "anspricht".
<-- : Eine Anweisung in der Bauteilliste zurück. Dieser Befehl
kann verwendet werden, wenn man Korrekturen nach Falsch-
eingabe durchführen möchte oder man kann ein Bauelement
ändern um z.B. zu sehen, wie sich die Ortskurve ver-
ändert.
--> : Wie der voherige Befehl, nur wird hier das nächste Bau-
teil der Liste aufgerufen.
Man muß sich erst bei den letzten beiden Befehlen daran
gewöhnen, wie man die Bauteile ändert. Grundsätzlich
gilt, daß man das angezeigte Bauteil ändern kann, aber
Vorsicht !
Soll z.B. bei einer Spannung nur der Imaginärteil ge-
ändert, so müssen stets beide Komponenten neu eingegeben
werden ! Dies gilt auch für die Stromquelle !
OK (Ortskurvensymbol) : Man kann die Ortskurve einer Schaltung
aufzeichnen. Das ist nur dann sinnvoll,
wenn man Spulen und Kondensatoren nicht
als Blindwiderstände eingibt, sondern
als L- und C-Werte !
Vom Programm ist es so vorgesehen, daß
man die Ortskurve des Widerstands auf-
zeichnet, d.h. in der Bauteilliste muß
der Befehl 'ZI' erscheinen !
Die Variable ist die Frequenz w=Omega.
Ich habe mich für die Kreisfrequenz und
nicht für die Frequenz f entschieden, da
w auch am meisten in Frequenzgängen ver-
wendet wird. Jetzt erfolgen einige
Abfragen, die auf dem Bildschirm er-
scheinen.
Diese brauche ich hier nicht zu er-
läutern.
Nur noch folgender Hinweis:
---------------------------
Es kann möglich sein, daß die Be-
schriftung manchmal geclippt wird oder
daß die Texte übereinander geschrieben
werden. Da sollte man die Bereiche der
komplexen Zahlenebene ändern. Das Pro-
gramm sollte flexibel in der Darstellung
sein, das hat eben diese Nebeneffekte.
Also sollte man experimentieren. Dies
gilt auch für die Befehle LIN und LOG !
LIN (Frequenzganggadget) : Hier kann man die Ortskurve praktisch
zerlegen in Betrag und Phase. Man
kann Widerstandsverläufe, aber auch
Strom- und Spannungsverläufe auf-
zeichnen. Hier werden wieder einige
Eingaben abgefragt, die im Klartext
auf dem Bildschirm erscheinen. Zur
Aufnahme von Strom- und Spannungsver-
läufen muß man natürlich die An-
weisung 'IK' bzw. 'U0' in der Bau-
teilliste zu stehen haben.
Nachdem die Eingabe erfolgt ist,
erscheint zuerst der Amplitudengang
(wenn der AMIGA fertig ist, das un-
sichtbare Schließgadget anklicken)
und danach der Phasenverlauf. Dann
wieder das Schließgadget anklicken.
LOG (Bodediagramm-Gadget): Hier sollte man sich auf Spannungs-
werte beschränken. Die Darstellung
erfolgt hier im Gegensatz zu 'LIN'
quasi logarithmisch.
Amlitudenverlauf: |F|/dB (lg(w))
Phase: Phi/o (lg(w))
Wichtig: Die Eingaben müssen loga-
rithmisch erfolgen (siehe
Beispiel 2, Kap. 3.1)
NUM : Hier erfolgt die Ausgabe der Werte numerisch, d.h. also
als Zahlenwert. Hat man eine Schaltung mit Blindwider-
ständen eingegeben (also nicht L- und C-Werte) so ist
die Eingabe einer Kreisfrequenz unbedeutend !
Man gibt irgendeinen beliebigen von 0.0 verschiedenen Wert
ein, da dieser keinen Einfluß auf das Ergebnis hat.
EE: Mit dieser Anweisung wird das Ende der Bauteilliste ge-
kennzeichnet. Dieser Befehl muß immer vorhanden sein !!!
Das Programm kann sonst nicht erkennen wann es aufhören
soll, d.h. es würde dann eine 'Meditation' erfolgen !!!
Bildschirm/Drucker-Gadget : ************************************
*Bevor man dieses Gadget benutzt,*
*muß man unbedingt vorher den*
*Drucker einschalten !!!!!!! *
************************************
Das ist eigentlich kein Befehl,
sondern nur ein Flag (Flip-Flop).
Hiermit wird festgelegt, ob die
Ausgabe auch auf dem Drucker er-
folgen soll. Bei den Anweisungen
'OK', 'LIN' und 'LOG' wird wie ge-
wohnt bei eingeschaltetem Drucker-
flag die Ausgabe auf dem Bildschirm
erfolgen und nach Fertigstellung
der Grafik wird eine Hardcopy auf
dem Drucker erzeugt, d.h. also be-
vor man das Schließgadget des Gra-
fikfensters schließt, sollte man
auf den Drucker warten !
Da alle WB 1.3 Drucker unterstützt
werden, kann man über die Prefe-
rences die Hardcopy einstellen.
Beste Ergebnisse erhält man, wenn
man Graphic 1: auf negative
Graphic 2: auf integer
einstellt, die anderen Parameter
hängen vom verwendeten Drucker ab.
Ein Beispiel für den NEC_Pinwriter:
-----------------------------------
Graphic1: horizontal,B&W, negative,
threshold 6
Graphic2: smoothing on, scaling
integer, width limit 2,
height limit 2, center
beliebig,limits multiply,
density 6, dithering
ordered
Beim Befehl 'NUM' und 'ANW' (siehe
Beschreibung unten) wird das Ergeb-
nis bei eingeschaltetem Drucker-
Gadget nur ausgedruckt (keine Bild-
schirmausgabe !)
Wichtig: Das Drucker-Gadget muß einge-
schaltet sein, bevor man 'NUM'
'LIN', 'OK' oder 'LOG' an-
klickt !!
POL/REC-Gadget : Das ist ebenfalls ein Flag. Bevor man eine
Berechnung (Ausgabe) oder Eingabe durchführt,
wird mit diesem Schalter eingestellt, ob man
die Betrags-/Winkeldarstellung (POL) oder die
Real-/ Imaginärteildarstellung (REC) benutzen
möchte. Bei der Eingabe bezieht sich dies nur
auf die Strom- und Spannungsquelle. Bei der
Ausgabe hat dieser Schalter keinen Einfluß
auf die Ortskurve, Frequenzgang und Bodedia-
gramm.
NS : Neue Schaltung eingeben. Der Index der Bauteilliste wird
neu initialisiert.
PEND : Das Programm wird verlassen
ANW : Es werden alle Anweisungen angezeigt bzw. ausgedruckt.
4. Bugs und Fehlerquellen
-------------------------
4.1 Zusätzliche Hinweise
------------------------
Natürlich hat auch dieses Programm seine Fehler. Deshalb sollen
hier die Grenzen der Einsatzmöglichkeiten dieses Programms, so-
weit bekannt, erläutert werden.
Die Benutzeroberfläche hat noch einige Macken. Der Benutzer muß
sich immer im Klaren sein was er tut. Es werden einige Be-
dienungsfehler zwar abgefangen, aber andere kann man nur schwer
abfangen.
Deshalb sollte man folgendes beachten:
- Vor- bzw. nach dem Programmstart die CAPS-LOCK-Taste 'ein-
rasten' lassen.
- Bei der Eingabe von I oder U stets beide Komponenten ein-
geben, d.h. wenn der Winkel "0" ist, dann gibt man eben "0"
ein. Auch wenn man nur mit Gleichspannungen bzw. Gleichströmen
und ohmschen Widerständen rechnet !!!!
- Wenn man 'EE' in der Bauteilliste vergißt, dann ist ein Ab-
sturz sicher.
- Bei der Ausgabe (z.B. Anweisung 'NUM') wird bei einer Schalt-
ung mit Blindwiderständen , da eine Frequenz ja schon intern
vorhanden ist, die Ausgabe der Kreisfrequenz keinen Sinn er-
geben. Der Ausdruck erfolgt aber.
- Es entstehen stets Rundungsfehler !
- **************************************************************
Das Printer.Device wird schon bei Programmstart geöffnet.
Falls man das Druckerflag einschaltet, so sollte der Drucker
unbedingt vorher eingeschaltet werden. Das Programm wartet
bis das der Fall ist, anderenfalls gibt es keine Möglichkeit
das Programm ohne Reset zu verlassen !!!!!!!!!!
**************************************************************
4.2 Bugs
--------
Den auffälligsten Fehler muß ich hier erwähnen:
Bei einer Ausgabe auf dem Drucker wird manchmal die Einheit
etwas seltsam ausgedruckt. Zumindest, wenn man den Drucker-
treiber 'NEC_Pinwriter' der WB 1.3 benutzt. Ich weiß nicht, ob
dieser Fehler auch bei Verwendung anderer Druckertreiber auf-
tritt. Eines steht fest, die Bildschirmausgabe ist immer kor-
rekt. Der Fehler liegt vermutlich in dem Modul 'PrinterSup-
port' von Michael Frieß AMOK #8, wobei ich wahrscheinlich diesen
verursacht habe, da ich dieses Modul an die Version V3.2d des
Compilers unsauber angepasst habe.
Da es sich um einen dynamischen Fehler handelt, habe ich ihn bis
heute nicht lokalisieren können. Ich hoffe aber, daß dieser in
einer Update Version nicht mehr vorkommen wird. Da es sich um
einen Schönheitsfehler handelt, hoffe ich, daß das Programm
trotzdem seine Anwendung findet. Beim Ausdruck der Ergebnisse
habe ich keinen Fehler feststellen können und dies ist ja das
Wichtigste.
Dann ist mir während der Programmierphase aufgefallen, daß es
manchmal Probleme mit Zeichenketten gibt, so ähnlich wie in dem
oben erwähnten Fehler. Das irgendwelche Zeichen mit in der
Zeichenkette auftreten, die aber da nicht hingehören, ohne
dabei mit POINTERN zu arbeiten. Dieses Phänomen ist mir nicht
nur bei diesem Programm aufgefallen. Da ich keinen Anhaltspunkt
gefunden habe, der auf die Ursache hindeutet, kann ich hier
leider keine konkreten Angaben machen. Es liegt wahrscheinlich
daran, daß ich unsauber programmiert habe.
In diesen Tagen wird die Version 3.3 des Compilers erscheinen.
Vielleicht ist der Fehler dann beim Ausdruck verschwunden, wenn
ich mir diese Update Version besorgt habe und den ungeänderten
Quellcode erneut compiliert habe.
5. Literatur, Quellenangaben
----------------------------
Ich möchte noch auf zwei Bücher hinweisen, die ich als Anregung
zu diesem Thema benutzt habe:
1) "Elektrotechnik mit BASIC-Rechnern(SHARP) Teil2 Frequenzgang/
Übergangsverhalten", Autor Prof. Dr.-Ing. Paul Vaske, B.G.
Teubner Verlag Stuttgart 1984 ISBN 3-519-16201-6, 2. Aufl.
2) "Analyse elektrischer und elektronischer Netzwerke mit Basic-
Programmen SHARP PC-1251/1500", Autor Prof. Dipl. Ing.
Dieter Lange, Friedr. Vieweg & Sohn 1984, ISBN 3-528-14253-
7, 2. Aufl.
Beide Bücher vermitteln theoretische Grundkenntnisse als auch
die Alogrithmen. Beide Bücher gehen inhaltlich weit über einen
Ersatzquellen-Algorithmus hinaus. Es werden Programme in BASIC
für die Pocket-Computer von SHARP als Beispiele gegeben.
Wie man aber unschwer erkennen wird, wird man feststellen, daß
ich mir mein eigenes Programm geschrieben habe. Ich habe dabei
in meinem Programm die Benutzerführung aufwärtskompatibel zu den
vorgestelleten BASIC Programmen gemacht, damit man die vielen
Beispiele in beiden Büchern nachrechnen kann.
Diese Beispiele habe ich auch für die Testphase benutzt. Man be-
achte aber bitte, daß ich andere Bezeichnungen gewählt habe
und auch die Speicheranweisungen weichen in meinem Programm ab.
Diese Informationen habe ich hier erwähnt, damit der- oder die-
jenige, der/die sich das Buch leiht oder kauft, sich nicht wun-
dert. Klarheit kann man sich aus den Beschreibungen der einzel-
nen Befehle verschaffen.
Der Zeitaufwand, den ich für dieses Programm aufgewendet habe,
war doch ziemlich hoch. Das wollte ich hier wenigstens erwähnen,
da das Programm eigentlich nicht so sehr umfangreich erscheint.
3) Als dritte Quelle möchte ich noch erwähnen, daß ich Vor-
lesungsmaterial (Skripte usw. ) aus meiner Studienzeit
(Nachrichtentechnik) verwendet habe.
6. Ansonsten noch ein kleiner Hinweis zu meiner Hardware:
---------------------------------------------------------
Ich habe meinen Rechner (AMIGA 500) kürzlich mit dem neuen
Customchip 'Super-Fat-Agnus' (8372A) mit 1MByte-Chip-RAM und
bei der Gelegenheit auch das alte Kickstart-ROM (33.180) gegen
das Kickstart-ROM V1.3 (34.5) ausgetauscht.
Was ich damit eigentlich sagen will, daß dieses Programm auch
auf den neuen AMIGAs läuft. Insbesondere das plötzlich im Gegen-
satz zu älteren AMIGAs 1-MByte Chip-RAM vorhanden sind bereitet
manchmal Probleme.
7. Änderungen und Verbesserungen
--------------------------------
7.1 History
-----------
V 1.0 24.10.89 Erste Version, die einigermaßen lief
V 1.0a 10.02.90 Bessere Fehlerbehandlung (nach Absturz er-
folgt jetzt die Freigabe von Fenstern, die
vorher als Leichen stehen blieben und den
Speicher nutzlos verkleinert haben)
7.2 Neue Versionen
------------------
Ich habe mir vorgenommen, neue Versionen zu schreiben. Vor-
allem die bestehenden Macken möchte ich früher oder später be-
seitigen. Eine bessere Benutzeroberfläche könnte ich mir noch
vorstellen. Z.Z. fehlt mir allerdings die Zeit dazu, aber ich
hoffe, daß ich trotzdem am Programm weiterarbeiten kann.
So jetzt habe ich ganz wunde Finger von der Tipparbeit und ma-
che jetzt Feierabend !
Also, viel Spaß bei der Anwendung !
-Gary-